package com.ship.dispatch.service.shipBusiness;

import com.github.pagehelper.PageInfo;
import com.ship.common.core.web.domain.JsonResult;
import com.ship.common.business.service.BaseService;
import com.ship.dispatch.bean.boats.info.QueryEvaporationConsumptionTrendInfo;
import com.ship.dispatch.bean.boats.info.QueryFuelConsumptionTrendInfo;
import com.ship.dispatch.bean.fob.SpFobFileRecord;
import com.ship.dispatch.bean.shipBusiness.SmShipReport;
import com.ship.dispatch.bean.shipBusiness.SmShipReportRecord;
import com.ship.dispatch.model.dto.shipReport.ShipReportDto;
import com.ship.dispatch.service.fob.SpFobFileRecordService;
import com.ship.dispatch.vo.shipReport.ShipReportDetailVO;

import java.text.ParseException;
import java.util.List;

public interface SmShipReportService extends BaseService<SmShipReport> {

    /**
     * 修改船舶午报
     * @return
     */
    SmShipReport updateShipReport(ShipReportDto shipReportDto,SpFobFileRecordService spFobFileRecordService);

    /**
     * 通过午报id获取详情
     * @param id
     * @return
     */
    List<ShipReportDetailVO> getShipReportDetail(Long id);

    /**
     * 删除午报
     *
     * @param id
     * @return
     */
    SmShipReport removeShipReport(Long id,SpFobFileRecordService spFobFileRecordService);

    /**
     * 新增午报
     * @param fobFileRecord
     */
    JsonResult saveShipReport(List<SpFobFileRecord> fileRecords) throws ParseException;

    List<SmShipReportRecord> getShipReportRecord(Long id);

    void cancelDelete(String businessKey, Integer staus);

    PageInfo<SmShipReport> queryShipPage(SmShipReport shipReport);

    List<SmShipReport> exportShipReport(SmShipReport shipReport);

    List<QueryFuelConsumptionTrendInfo> queryFuelConsumptionTrend(String shipName, String startDate, String endDate);

    List<QueryEvaporationConsumptionTrendInfo> queryEvaporationConsumptionTrend(String shipName, String startDate, String endDate);

    PageInfo<SmShipReport> queryShipReportList(SmShipReport shipReport);
}
